# encoding: utf-8


import pandas as pd
from pylab import *
import seaborn as sn

mpl.rcParams['font.sans-serif']=['SimHei']   # 用黑体显示中文
mpl.rcParams['axes.unicode_minus']=False     # 正常显示负号


# 房天下数据是真实房地产中介的统计信息，可以通过信息查找一些相关数据，现在对该数据进行如下处理：
# 1.	使用juypternotebook完成（10分）
# 2.	读取数据集（10分）
df=pd.read_excel('ftx.xls');print(df)
# 3.	提取时间为2009年的数据，使用分组函数，计算上海和沈阳的地区的销售最大值（10分）
zone = ['上海','沈阳']
print(df[(df['年']==2009)&(df['销售区域'].isin(zone))].groupby(['销售区域'])['销售数量'].max())
# 4.	添加一列新数据，命名季度（10分），通过月份进行转换得到1-3为1季度，4-6为2季度，以此类推（10分）
#定义季度的函数
def fn(n):
    if n>0 and n<4:
        return 'Q1'   # Q1第1季度
    elif n>3 and n<7:
        return 'Q2'
    elif n>6 and n<10:

        return 'Q3'
    else:
        return 'Q4'

df['季度']=df['年'].astype(str)+df['月'].map(fn)   #季度=年+Qn, map(fn)将"月"按照fn函数映射转换为Qn
print(df)
# 5.	计算沈阳地区2009年每季度的销售总和（10分）
print(df[(df['销售区域']=='沈阳')&(df['年']==2009)].groupby(['季度'])['销售数量'].sum())
# 6.	将修改后的数据进行保存到1.csv中（10分）
df.to_csv('1.csv')
# 7.	使用交叉表，表达数据销售区域和年的关系（10分）
print(pd.crosstab(df['销售区域'], df['年'], margins=True))
# 8.	统计季度的频次（10分）
vc = df['季度'].value_counts()
print(vc)  #vc is a series
# 9.	使用季度频次，绘制条形图（10分）
df1=pd.DataFrame({'季度': vc.values},index= vc.index.values)  #由series创建dataframe
df1.plot.bar(rot=0)
plt.show()
